Overview | Package | Class | Tree | Deprecated | Index | Help Java Platform
1.1.7
PREV CLASS | NEXT CLASS FRAMES  | NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

Class com.sun.java.swing.text.StyleContext

java.lang.Object
  |
  +--com.sun.java.swing.text.StyleContext

public class StyleContext
extends java.lang.Object
implements java.io.Serializable, AbstractDocument.AttributeContext
A pool of styles and their associated resources. This class determines the lifetime of a group of resources by being a container that holds caches for various resources such as font and color that get reused by the various style definitions. This can be shared by multiple documents if desired to maximize the sharing of related resources.

This class also provides efficient support for small sets of attributes and compresses them by sharing across uses and taking advantage of their immutable nature. Since many styles are replicated, the potential for sharing is significant, and copies can be extremely cheap. Larger sets reduce the possibility of sharing, and therefore revert automatically to a less space-efficient implementation.

Warning: serialized objects of this class will not be compatible with future swing releases. The current serialization support is appropriate for short term storage or RMI between Swing1.0 applications. It will not be possible to load serialized Swing1.0 objects with future releases of Swing. The JDK1.2 release of Swing will be the compatibility baseline for the serialized form of Swing objects.

See Also:
Serialized Form

Inner Class Summary
StyleContext.NamedStyle
          A collection of attributes, typically used to represent character and paragraph styles.
 
Field Summary
static java.lang.String DEFAULT_STYLE
          The name given to the default logical style attached to paragraphs.
 
Constructor Summary
StyleContext()
          Creates a new StyleContext object.
 
Method Summary
AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
          Adds a set of attributes to the element.
AttributeSet addAttribute(AttributeSet old, java.lang.Object name, java.lang.Object value)
          Adds an attribute to the given set, and returns the new representative set.
void addChangeListener(ChangeListener l)
          Adds a listener to track when styles are added or removed.
Style addStyle(java.lang.String nm, Style parent)
          Adds a new style into the style hierarchy.
int getCompressionThreshold()
          Returns the maximum number of key/value pairs to try and compress into unique/immutable sets.
static StyleContext getDefaultStyleContext()
          Returns default AttributeContext shared by all documents that don't bother to define/supply their own context.
AttributeSet getEmptySet()
          Fetches an empty AttributeSet.
java.awt.FontMetrics getFontMetrics(java.awt.Font f)
          Returns font metrics for a font.
java.awt.Font getFont(AttributeSet attr)
          Gets the font from an attribute set.
java.awt.Font getFont(java.lang.String family, int style, int size)
          Gets a new font.
java.util.Enumeration getStyleNames()
          Fetches the names of the styles defined.
Style getStyle(java.lang.String nm)
          Fetches a named style previously added to the document
static void readAttributeSet(java.io.ObjectInputStream in, MutableAttributeSet a)
          Reads a set of attributes from the given object input stream that have been previously written out with writeAttributeSet.
void reclaim(AttributeSet a)
          Returns a set no longer needed by the MutableAttributeSet implmentation.
static void registerStaticAttributeKey(java.lang.Object key)
          Registers an object as a static object that is being used as a key in attribute sets.
AttributeSet removeAttributes(AttributeSet old, java.util.Enumeration names)
          Removes a set of attributes for the element.
AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
          Removes a set of attributes for the element.
AttributeSet removeAttribute(AttributeSet old, java.lang.Object name)
          Removes an attribute from the set.
void removeChangeListener(ChangeListener l)
          Removes a listener that was tracking styles being added or removed.
void removeStyle(java.lang.String nm)
          Removes a named style previously added to the document.
java.lang.String toString()
          Converts a StyleContext to a String.
static void writeAttributeSet(java.io.ObjectOutputStream out, AttributeSet a)
          Writes a set of attributes to the given object stream for the purpose of serialization.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notifyAll, notify, toString, wait, wait, wait
 

Field Detail

DEFAULT_STYLE

public static final java.lang.String DEFAULT_STYLE
The name given to the default logical style attached to paragraphs.
Constructor Detail

StyleContext

public StyleContext()
Creates a new StyleContext object.
Method Detail

getDefaultStyleContext

public static final StyleContext getDefaultStyleContext()
Returns default AttributeContext shared by all documents that don't bother to define/supply their own context.
Returns:
the context

addStyle

public Style addStyle(java.lang.String nm,
                      Style parent)
Adds a new style into the style hierarchy. Style attributes resolve from bottom up so an attribute specified in a child will override an attribute specified in the parent.
Parameters:
nm - the name of the style (must be unique within the collection of named styles in the document). The name may be null if the style is unnamed, but the caller is responsible for managing the reference returned as an unnamed style can't be fetched by name. An unnamed style may be useful for things like character attribute overrides such as found in a style run.
parent - the parent style. This may be null if unspecified attributes need not be resolved in some other style.
Returns:
the created style

removeStyle

public void removeStyle(java.lang.String nm)
Removes a named style previously added to the document.
Parameters:
nm - the name of the style to remove

getStyle

public Style getStyle(java.lang.String nm)
Fetches a named style previously added to the document
Parameters:
nm - the name of the style
Returns:
the style

getStyleNames

public java.util.Enumeration getStyleNames()
Fetches the names of the styles defined.
Returns:
the list of names as an enumeration

addChangeListener

public void addChangeListener(ChangeListener l)
Adds a listener to track when styles are added or removed.
Parameters:
l - the change listener

removeChangeListener

public void removeChangeListener(ChangeListener l)
Removes a listener that was tracking styles being added or removed.
Parameters:
l - the change listener

getFont

public java.awt.Font getFont(AttributeSet attr)
Gets the font from an attribute set. This is implemented to try and fetch a cached font for the given AttributeSet, and if that fails the font features are resolved and the font is fetched from the low-level font cache.
Parameters:
attr - the attribute set
Returns:
the font

getFont

public java.awt.Font getFont(java.lang.String family,
                    int style,
                    int size)
Gets a new font. This returns a Font from a cache if a cached font exists. If not, a Font is added to the cache. This is basically a low-level cache for 1.1 font features.
Parameters:
family - the font family (such as "Monospaced")
style - the style of the font (such as Font.PLAIN)
size - the point size >= 1
Returns:
the new font

getFontMetrics

public java.awt.FontMetrics getFontMetrics(java.awt.Font f)
Returns font metrics for a font.
Parameters:
f - the font
Returns:
the metrics

addAttribute

public AttributeSet addAttribute(AttributeSet old,
                                 java.lang.Object name,
                                 java.lang.Object value)
Adds an attribute to the given set, and returns the new representative set.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
addAttribute in interface AbstractDocument.AttributeContext
Parameters:
old - the old attribute set
name - the non-null attribute name
value - the attribute value
Returns:
the updated attribute set
See Also:
addAttribute

addAttributes

public AttributeSet addAttributes(AttributeSet old,
                                  AttributeSet attr)
Adds a set of attributes to the element.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
addAttributes in interface AbstractDocument.AttributeContext
Parameters:
old - the old attribute set
attr - the attributes to add
Returns:
the updated attribute set
See Also:
addAttribute

removeAttribute

public AttributeSet removeAttribute(AttributeSet old,
                                    java.lang.Object name)
Removes an attribute from the set.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
removeAttribute in interface AbstractDocument.AttributeContext
Parameters:
old - the old set of attributes
name - the non-null attribute name
Returns:
the updated attribute set
See Also:
removeAttribute

removeAttributes

public AttributeSet removeAttributes(AttributeSet old,
                                     java.util.Enumeration names)
Removes a set of attributes for the element.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
removeAttributes in interface AbstractDocument.AttributeContext
Parameters:
old - the old attribute set
names - the attribute names
Returns:
the updated attribute set
See Also:
removeAttributes

removeAttributes

public AttributeSet removeAttributes(AttributeSet old,
                                     AttributeSet attrs)
Removes a set of attributes for the element.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
removeAttributes in interface AbstractDocument.AttributeContext
Parameters:
old - the old attribute set
attrs - the attributes
Returns:
the updated attribute set
See Also:
removeAttributes

getEmptySet

public AttributeSet getEmptySet()
Fetches an empty AttributeSet.
Specified by:
getEmptySet in interface AbstractDocument.AttributeContext
Returns:
the set

reclaim

public void reclaim(AttributeSet a)
Returns a set no longer needed by the MutableAttributeSet implmentation. This is useful for operation under 1.1 where there are no weak references. This would typically be called by the finalize method of the MutableAttributeSet implementation.

This method is thread safe, although most Swing methods are not. Please see Threads and Swing for more information.

Specified by:
reclaim in interface AbstractDocument.AttributeContext
Parameters:
a - the set to reclaim

getCompressionThreshold

protected int getCompressionThreshold()
Returns the maximum number of key/value pairs to try and compress into unique/immutable sets. Any sets above this limit will use hashtables and be a MutableAttributeSet.
Returns:
the threshold

toString

public java.lang.String toString()
Converts a StyleContext to a String.
Returns:
the string
Overrides:
toString in class java.lang.Object

writeAttributeSet

public static void writeAttributeSet(java.io.ObjectOutputStream out,
                                     AttributeSet a)
                             throws java.io.IOException
Writes a set of attributes to the given object stream for the purpose of serialization. This will take special care to deal with static attribute keys that have been registered wit the registerStaticAttributeKey method. Any attribute key not regsitered as a static key will be serialized directly. All values are expected to be serializable.
Parameters:
out - the output stream
a - the attribute set
Throws:
java.io.IOException - on any I/O error

readAttributeSet

public static void readAttributeSet(java.io.ObjectInputStream in,
                                    MutableAttributeSet a)
                            throws java.lang.ClassNotFoundException,
                                   java.io.IOException
Reads a set of attributes from the given object input stream that have been previously written out with writeAttributeSet. This will try to restore keys that were static objects to the static objects in the current virtual machine considering only those keys that have been registered with the registerStaticAttributeKey method. The attributes retrieved from the stream will be placed into the given mutable set.
Parameters:
in - the object stream to read the attribute data from.
a - the attribute set to place the attribute definitions in.
Throws:
java.lang.ClassNotFoundException - passed upward if encountered when reading the object stream.
java.io.IOException - passed upward if encountered when reading the object stream.

registerStaticAttributeKey

public static void registerStaticAttributeKey(java.lang.Object key)
Registers an object as a static object that is being used as a key in attribute sets. This allows the key to be treated specially for serialization.

For operation under a 1.1 virtual machine, this uses the value returned by toString concatenated to the classname. The value returned by toString should not have the class reference in it (ie it should be reimplemented from the definition in Object) in order to be the same when recomputed later.

Parameters:
key - the non-null object key

Overview | Package | Class | Tree | Deprecated | Index | Help Java Platform
1.1.7
PREV CLASS | NEXT CLASS FRAMES  | NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD DETAIL:  FIELD | CONSTR | METHOD

Submit a bug or feature
Submit comments/suggestions about javadoc
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.